package com.lesama.listener;

import javax.swing.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

/*
* 适配器设计模式： 如果一个实现类不需要实现接口的所有抽象方法，则可以采用适配器设计模式
* 通过在中间构建一层适配器先重写接口所有抽象方法，空实现，然后让接口实现类去继承这个适配器即可
* 步骤：
* 1. 编写一个xxxAdapter类，实现对应的接口
* 2. 重写接口内部所有抽象方法，但均为空实现
* 3. 让自己的类去继承这个适配器类，重写所需的方法即可
* 4. 将适配器类用abstract修饰，防止其他类创建适配器对象调用里面没有意义的空方法
* */
public class KeyAdapterTest {
    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setSize(800, 500);
        frame.setLayout(null);
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.setTitle("适配器设计模式");
        frame.addKeyListener(new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent e) {
                System.out.println("键盘按下了...");
            }
        });
        /*frame.addKeyListener(new KeyListener() {
            @Override
            public void keyTyped(KeyEvent e) {

            }

            @Override
            public void keyPressed(KeyEvent e) {

            }

            @Override
            public void keyReleased(KeyEvent e) {

            }
        });*/
        frame.setVisible(true);
    }
}
